home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Visual Cafe Pro v1.0 / TUTORIAL.BIN / DirectionButton.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-12-16  |  2.3 KB  |  111 lines

  1. package symantec.itools.awt;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Dimension;
  6. import java.awt.Graphics;
  7. import java.awt.Polygon;
  8.  
  9. public class DirectionButton extends ButtonBase {
  10.    public static final int LEFT = 0;
  11.    public static final int RIGHT = 1;
  12.    // $FF: renamed from: UP int
  13.    public static final int field_0 = 2;
  14.    public static final int DOWN = 3;
  15.    private int direction;
  16.    private int left;
  17.    private int right;
  18.    private int top;
  19.    private int bottom;
  20.    private int indent;
  21.    private Polygon poly;
  22.  
  23.    public DirectionButton() {
  24.       this(0);
  25.    }
  26.  
  27.    public DirectionButton(int var1) {
  28.       this.direction = var1;
  29.       this.left = 0;
  30.       this.right = 0;
  31.       this.bottom = 0;
  32.       this.indent = 0;
  33.       this.poly = null;
  34.    }
  35.  
  36.    public void setDirection(int var1) {
  37.       this.direction = var1;
  38.    }
  39.  
  40.    public int getDirection() {
  41.       return this.direction;
  42.    }
  43.  
  44.    public void setArrowIndent(int var1) {
  45.       this.indent = var1;
  46.       ((Component)this).invalidate();
  47.    }
  48.  
  49.    public int getArrowIndent() {
  50.       return this.indent;
  51.    }
  52.  
  53.    public void shrinkTriangle(int var1, int var2, int var3, int var4) {
  54.       this.left = var1;
  55.       this.right = var2;
  56.       this.top = var3;
  57.       this.bottom = var4;
  58.    }
  59.  
  60.    public void paint(Graphics var1) {
  61.       super.paint(var1);
  62.       this.updatePolygon();
  63.       if (((Component)this).isEnabled()) {
  64.          var1.setColor(Color.black);
  65.       } else {
  66.          var1.setColor(Color.gray);
  67.       }
  68.  
  69.       var1.fillPolygon(this.poly);
  70.    }
  71.  
  72.    public Dimension preferredSize() {
  73.       Dimension var1 = ((Component)this).size();
  74.       return new Dimension(Math.max(var1.width, ((Component)this).minimumSize().width), Math.max(var1.height, ((Component)this).minimumSize().height));
  75.    }
  76.  
  77.    void updatePolygon() {
  78.       Dimension var1 = ((Component)this).size();
  79.       this.poly = new Polygon();
  80.       int var2 = var1.width / 2 + super.pressedAdjustment;
  81.       int var3 = var1.height / 2 + super.pressedAdjustment;
  82.       int var4 = this.top + super.bevel * 2 + super.pressedAdjustment + this.indent;
  83.       int var5 = var1.height - this.bottom - super.bevel * 2 + super.pressedAdjustment - this.indent;
  84.       int var6 = this.left + super.bevel * 2 + super.pressedAdjustment + this.indent;
  85.       int var7 = var1.width - this.right - super.bevel * 2 + super.pressedAdjustment - this.indent;
  86.       switch (this.direction) {
  87.          case 0:
  88.             this.poly.addPoint(var6, var3);
  89.             this.poly.addPoint(var7, var4);
  90.             this.poly.addPoint(var7, var5);
  91.             return;
  92.          case 1:
  93.             this.poly.addPoint(var7, var3);
  94.             this.poly.addPoint(var6, var4);
  95.             this.poly.addPoint(var6, var5);
  96.             return;
  97.          case 2:
  98.             this.poly.addPoint(var2, var4);
  99.             this.poly.addPoint(var6, var5);
  100.             this.poly.addPoint(var7, var5);
  101.             return;
  102.          case 3:
  103.             this.poly.addPoint(var2, var5);
  104.             this.poly.addPoint(var6, var4);
  105.             this.poly.addPoint(var7, var4);
  106.             return;
  107.          default:
  108.       }
  109.    }
  110. }
  111.